iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

基本架構

1.找出問題
2.思考是否真的需要使用機器學習?
3.資料收集
4.資料前處理
5.特徵工程
6.模型訓練
7.模型評估
8.微調模型&參數
9.預測&部署模型
https://ithelp.ithome.com.tw/upload/images/20230928/20161144vQ7isYTgZH.png

  • 取得資料
  • 資料前處理
    • 清理
    • 正規化
    • 標準化
  • 特徵工程
    • 降維
    • PCA
    • ICA
    • LDA
  • 模型訓練 => 學習、演算法
    • ML、DL
    • NN
    • GAN
  • 模型評估
    • 混淆矩陣
    • 評估曲線
    • F1 score

資料前處理

  • 資料收集與處理不當
    • NA:表示缺失值,是 Not Available 的縮寫。
    • Inf:表示無窮大,是 Infinite 的縮寫。
    • NaN:表示非數值,是 Not a Number 的縮寫。
    • NULL:表示空值,即沒有內容。
  1. 資料清理(包含清理缺失值、異常值、離群值等)
import pandas as pd

# 範例DataFrame
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, 4, 5]}
df = pd.DataFrame(data)
print("Before")
print(df)

# 刪除包含缺失值的列
df.dropna(inplace=True)

# 填充缺失值,這裡用特定值(例如0)來填充缺失值
df.fillna(0, inplace=True)
print("After")
print(df)
  1. 資料正規化
  • Label Encoding
    Label Encoding用於將類別型特徵轉換為數字,通常用於有序類別(例如低、中、高)或二元類別(例如是、否)。
import pandas as pd
from sklearn.preprocessing import LabelEncoder

# 範例DataFrame
data = {'Category': ['A', 'B', 'A', 'C', 'B']}
df = pd.DataFrame(data)

# 建立LabelEncoder物件
label_encoder = LabelEncoder()

# 使用LabelEncoder對類別特徵進行編碼
df['Category_Encoded'] = label_encoder.fit_transform(df['Category'])

print(df)

  • One-hot Encoding
    One-hot Encoding用於將類別型特徵轉換成二元特徵,每個類別都被轉換為一個新的二元欄位。
import pandas as pd

# 範例DataFrame
data = {'Category': ['A', 'B', 'A', 'C', 'B']}
df = pd.DataFrame(data)

# 使用get_dummies進行One-hot Encoding
df_encoded = pd.get_dummies(df, columns=['Category'], prefix=['Category'])

print(df_encoded)

  1. 資料標準化
    • Max-Min
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 範例DataFrame
data = {'A': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
print(df)
# 使用MinMaxScaler進行Max-Min正規化
minmax_scaler = MinMaxScaler()
df['A'] = minmax_scaler.fit_transform(df[['A']])
print("Max-Min",df)

  • Z-Score
import pandas as pd
from sklearn.preprocessing import StandardScaler

# 範例DataFrame
data = {'A': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
print(df)
# 使用StandardScaler進行Z-Score正規化
zscore_scaler = StandardScaler()
df['A'] = zscore_scaler.fit_transform(df[['A']])
print("Max-Min",df)

上一篇
[DAY12] 機器學習-監督式與非監督
下一篇
[DAY14] 機器學習基本架構(二): 特徵工程Part1
系列文
關於我從基礎程設轉職到人工智慧入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言